|
Cytosim
PI
Cytoskeleton Simulator
|
A PointSet representing a spherical object using:
nbRefPts 'fixed' points provide a reference frame on the surface of the sphere: nbRefPts=1 in 2D, nbRefPts=3 in 3D.
The sphere can move as a solid body by rotation and translation. In addition, the surface-points can move on the surface. This motion includes diffusion and force-induced drag and is characterized by a mobility scalar. Finally, a mobile point can also carry a Single.
This class was started by Dietrich Foethke in 2005 to simulate the nucleus of S.pombe. Related classes are Bead and Solid.
Public Member Functions | |
| Sphere (SphereProp const *p) | |
| create but do not initialize More... | |
| Sphere (SphereProp const *p, real radius) | |
| create and initialize following the specifications of SphereProp | |
| virtual | ~Sphere () |
| destructor | |
| void | setDragCoefficientPiston () |
| calculate mobility with piston effect More... | |
| void | setDragCoefficientStokes () |
| calculate mobility with piston effect More... | |
| void | setDragCoefficient () |
| calculate mobility | |
| real | dragCoefficient () const |
| total drag-coefficient of object (force = drag * speed) | |
| void | prepareMecable () |
| calculate mobility and diffusion constant | |
| Vector | position () const |
| position of center of gravity (returns the center of the sphere) | |
| real | radius () const |
| radius of the sphere | |
| void | resize (real) |
| change radius | |
| void | foldPosition (const Modulo *) |
| modulo function for periodic space | |
| void | setInteractions (Meca &) const |
| add the interactions due to confinement | |
| real | addBrownianForces (real *rhs, real sc) const |
| add contribution of Brownian forces | |
| void | reshape () |
| bring all surface points at distance spRadius from center, by moving them radially More... | |
| void | getPoints (const real *x) |
| set position | |
| unsigned | addSurfacePoint (Vector const &) |
| normalize point and add center | |
| void | makeProjection () |
| prepare for constrained projection | |
| void | setSpeedsFromForces (const real *X, real *Y, real, bool) const |
| calculate speed of points in Y, for the forces given in X, scaled by sc | |
| Sphere * | next () const |
| a static_cast<> of Node::next() | |
| Sphere * | prev () const |
| a static_cast<> of Node::prev() | |
| Tag | tag () const |
| return unique character identifying the class | |
| const Property * | property () const |
| return Object Property | |
| void | write (OutputWrapper &) const |
| write to file | |
| void | read (InputWrapper &, Simul &) |
| read from file | |
Public Member Functions inherited from PointSet | |
| PointSet () | |
| Constructor. | |
| PointSet (const PointSet &) | |
| Copy constructor. | |
| PointSet & | operator= (const PointSet &) |
| Assignement operator. | |
| virtual | ~PointSet () |
| Destructor. | |
| virtual void | deallocatePoints () |
| free memory allocated by allocatePoints() | |
| unsigned int | nbPoints () const |
| Number of points. | |
| unsigned int | lastPoint () const |
| Index of the last point = nbPoints - 1. | |
| unsigned int | nbSegments () const |
| Number of segments = nbPoints - 1. | |
| unsigned int | lastSegment () const |
| Index of the last segment = nbPoints - 2. | |
| Vector | posP (const unsigned p) const |
| Position of point 'p' of the object. | |
| real const * | addr () const |
| Address of point p. | |
| real const * | addrPoint (const unsigned p) const |
| Address of point p. | |
| void | setPoint (unsigned p, Vector const &w) |
| Set position of point p to w. | |
| void | nbPoints (const unsigned n) |
| Set the number of points in the array. | |
| unsigned int | addPoint (Vector const &w) |
| Add a point, returning the array index that was used. | |
| void | removePoint (unsigned int p) |
| Remove a point from the array psPos, returns number of points remaining. | |
| virtual void | truncateM (unsigned int p) |
| Remove all points with indices [ 0, p-1 ], keep [ p, nbPoints() ]. More... | |
| virtual void | truncateP (unsigned int p) |
| Keep points [ 0, p ], remove other points. More... | |
| void | clearPoints () |
| Remove all points. | |
| void | resetPoints () |
| Set all coordinates to zero (nicer for debug/testing) | |
| void | addNoise (real amount) |
| Add random noise uniformly to all coordinate (used for testing purposes) | |
| virtual void | putPoints (real *) const |
| copy current coordinates to argument | |
| virtual void | getForces (const real *ptr) |
| replace current forces by the ones provided | |
| Vector | netForceP (const unsigned p) const |
| Force on point p calculate by Brownian dynamics. | |
| void | movePoint (const unsigned int p, Vector const &w) |
| Shift point at index p by vector w. | |
| Vector | diffPoints (const unsigned p) const |
| Difference of two points = Q - P = vector PQ. | |
| Vector | diffPoints (const unsigned int p, const unsigned int q) const |
| Difference of two points = Q - P = vector PQ. | |
| Vector | interpolatePoints (const unsigned int p, const unsigned int q, const real a) const |
| Calculate intermediate position = P + a ( Q - P ) | |
| void | calculateMomentum (real[], bool divide=false) |
| calculate first momentum of point coordinates More... | |
| void | calculateMomentum (real[], real[], bool divide=false) |
| calculate first and second momentum of point coordinates More... | |
| virtual bool | translatable () const |
| true if object accepts translations | |
| virtual void | translate (Vector const &) |
| Translate object (moves all the points by w) | |
| virtual bool | rotatable () const |
| true if object accepts translations | |
| virtual void | rotate (Rotation const &) |
| Rotate object by given rotation. | |
| virtual void | foldPositionG (const Modulo *) |
| Call modulo around the center of gravity. | |
Public Member Functions inherited from Mecable | |
| Mecable () | |
| The constructor resets the pointers. | |
| virtual | ~Mecable () |
| Destructor de-allocates memory. | |
| virtual Vector | posP (unsigned int P) const =0 |
| return position of point P | |
| virtual void | putPoints (real[]) const =0 |
| copy current coordinates to provided array | |
| virtual void | getPoints (const real[])=0 |
| replace current coordinates of points by values from the provided array | |
| virtual Vector | netForceP (unsigned int p) const =0 |
| return Force on point p calculated at previous step by Brownian dynamics | |
| virtual void | getForces (const real[])=0 |
| replace current forces by the ones provided | |
| void | matIndex (Matrix::index_type index) |
| Store the index where coordinates are located in Meca. | |
| Matrix::index_type | matIndex () const |
| Index in mB of the first point. the index in the vectors is DIM*matIndex() More... | |
| bool | useBlock () const |
| Tell Meca to use preconditionning on this object or not. | |
| void | useBlock (bool b) |
| change preconditionning flag | |
| real * | allocateBlock (unsigned) |
| Allocate a block of the requested size. | |
| real * | block () const |
| return allocated block | |
| virtual void | addRigidity (const real *X, real *Y) const |
| Add rigidity terms Y <- Y + Rigidity * X. More... | |
| virtual void | addRigidityMatUp (Matrix &mB, int offset) const |
| Add rigidity matrix elements (which should be symmetric) to provided matrix. More... | |
| virtual void | makeProjectionDiff (const real *forces) |
| set the terms obtained from the linearization of the Projection operator, from the given forces More... | |
| virtual void | addProjectionDiff (const real *X, real *Y) const |
| add terms from projection correction terms: Y <- Y + P' * X; More... | |
Public Member Functions inherited from Object | |
| Object () | |
| constructor | |
| std::string | reference () const |
| concatenation of [ tag(), property()->index(), number() ] in plain ascii More... | |
| void | writeReference (OutputWrapper &) const |
| write a reference that identifies the Object uniquely More... | |
| void | writeReference (OutputWrapper &, Tag tag) const |
| write a reference, but using the provided Tag More... | |
| int | mark () const |
| birth mark value | |
| void | mark (int m) |
| set birth mark | |
| int | fleck () const |
| fleck value (not stored in trajectory files) | |
| void | fleck (int f) const |
| set fleck (the value is not stored in trajectory files) | |
| Object * | next () const |
| extends Node::next(), with a cast to preserve type | |
| Object * | prev () const |
| extends Node::prev(), with a cast to preserve type | |
Public Member Functions inherited from Node | |
| Node () | |
| constructor set as unlinked | |
| virtual | ~Node () |
| destructor More... | |
| bool | linked () const |
| true if Node is linked | |
| Node * | next () const |
| the next Node in the list, or zero if this is last | |
| Node * | prev () const |
| the previous Node in the list, or zero if this is first | |
| NodeList * | list () const |
| the list where the object is linked, or zero | |
| ObjectSet * | objset () const |
| return associated ObjectSet | |
Public Member Functions inherited from Inventoried | |
| Inventoried () | |
| initialize (name=0) | |
| ~Inventoried () | |
| destructor | |
| void | number (Number n) |
| change the serial number | |
| Number | number () const |
| serial number : a integer identifier, unique within each class | |
Public Member Functions inherited from Movable | |
| Movable () | |
| constructor | |
| virtual | ~Movable () |
| destructor | |
| virtual void | setPosition (Vector const &) |
| move object to specified position More... | |
| virtual void | rotateP (Rotation const &) |
| rotate the object around its current position More... | |
Public Member Functions inherited from Buddy | |
| virtual | ~Buddy () |
| upon destruction, goodbye is called for all buddies | |
| void | hello (Buddy *b) |
| will make this and b mutual buddies | |
| virtual void | goodbye (Buddy *) |
| this is called everytime a known buddy is destroyed | |
| Buddy * | buddy (unsigned int ix) const |
| return buddy at index ix | |
| void | buddy (Buddy *b, unsigned int ix) |
| replace the buddy that may have been at index ix | |
Public Attributes | |
| SphereProp const * | prop |
| Property. | |
Static Public Attributes | |
| static const unsigned int | nbRefPts = DIM+(DIM==3) |
| number of reference points, including center: 1, 2, 4 for DIM = 1, 2 and 3 | |
| static const Tag | TAG = 'o' |
| a unique character identifying the class | |
Static Public Attributes inherited from Object | |
| static const Tag | TAG = 'v' |
| Object::TAG = 'v' represents the 'void' pointer. | |
Additional Inherited Members | |
Static Public Member Functions inherited from PointSet | |
| static Vector | diffPoints (const real *src, const unsigned p) |
| Difference of two points = P+1 - P. | |
Static Public Member Functions inherited from Object | |
| static std::string | strReference (char, int, Number, int) |
| build a string reference by concatenating (tag, property_index, number, mark) More... | |
| static void | readReference (InputWrapper &, int &, Number &, int &, char pretag) |
| read a reference (property_index, number, mark) from input More... | |
| static void | writeNullReference (OutputWrapper &) |
| write a reference that does not refer to any Object | |
Static Public Member Functions inherited from Movable | |
| static Vector | readPrimitive (std::istream &, const Space *) |
| read a position specified with primitives, such as 'circle 5', etc. More... | |
| static Vector | readPosition (std::istream &, const Space *) |
| read a position in space More... | |
| static Vector | readDirection (std::istream &, const Vector &, const Space *) |
| read an orientation, and return a normalized vector More... | |
| static Rotation | readRotation (std::istream &, const Vector &, const Space *) |
| read a rotation specified in is, at position pos More... | |
Protected Attributes inherited from PointSet | |
| real * | psPos |
| psPos[] of size DIM*psAllocated contains DIM*psSize point-coordinates | |
| real const * | psFor |
| psFor[] of size DIM*psAllocated contains DIM*psSize force-coordinates | |
| Vector | psCenter |
| Center of gravity calculed in calculatePosition() | |
Protected Attributes inherited from Node | |
| Node * | nNext |
| the next Node in the list | |
| Node * | nPrev |
| the previous Node in the list | |
Protected Attributes inherited from Inventoried | |
| Number | nNumber |
| object identifier, unique within the class defined by tag() | |
| Sphere | ( | SphereProp const * | p | ) |
The Sphere is returned with no points
| void reshape | ( | ) |
we get rid of finite-step errors but conserve the shape by projecting back onto the sphere, without changing the position of point zero (the center)
| void setDragCoefficientPiston | ( | ) |
Expect higher friction due to flow around the sphere in a narrow tube. This is only valid if (r -a)/a << 1, where r = radius of the tube, and a = radius of the sphere.
The formula are taken from: The Motion of a Closely-Fitting Sphere in a Fluid-Filled Tube
P. Bungay and H. Brenner, Int. J. Multiphase Flow
Vol 1, pp. 25-56, 1973 (see 3.6, 4.68a and 5.11)
| void setDragCoefficientStokes | ( | ) |
the mobility is that of a sphere in an infinite fluid (Stokes law)